home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / ietf / urn / urn-archives / urn-ietf.archive.9610 / 000145_owner-urn-ietf _Thu Oct 31 14:59:14 1996.msg < prev    next >
Internet Message Format  |  1997-02-19  |  8KB

  1. Received: (from daemon@localhost) by services.bunyip.com (8.6.10/8.6.9) id OAA18846 for urn-ietf-out; Thu, 31 Oct 1996 14:59:14 -0500
  2. Received: from mocha.bunyip.com (mocha.Bunyip.Com [192.197.208.1]) by services.bunyip.com (8.6.10/8.6.9) with SMTP id OAA18841 for <urn-ietf@services.bunyip.com>; Thu, 31 Oct 1996 14:59:10 -0500
  3. Received: from newton.ncsa.uiuc.edu by mocha.bunyip.com with SMTP (5.65a/IDA-1.4.2b/CC-Guru-2b)
  4.         id AA27671  (mail destined for urn-ietf@services.bunyip.com); Thu, 31 Oct 96 14:57:53 -0500
  5. Received: from carlyle.ncsa.uiuc.edu (carlyle.ncsa.uiuc.edu [141.142.230.144]) by newton.ncsa.uiuc.edu (8.6.11/8.6.12) with ESMTP id NAA16767; Thu, 31 Oct 1996 13:56:41 -0600
  6. Received: from ncsa.uiuc.edu (void.ncsa.uiuc.edu [141.142.103.20]) by carlyle.ncsa.uiuc.edu (8.6.11/8.6.9) with ESMTP id NAA29904; Thu, 31 Oct 1996 13:56:40 -0600
  7. Received: (from liberte@localhost) by ncsa.uiuc.edu (8.7.6/8.7.3) id NAA10608; Thu, 31 Oct 1996 13:51:04 -0600 (CST)
  8. Date: Thu, 31 Oct 1996 13:51:04 -0600 (CST)
  9. From: Daniel LaLiberte <liberte@ncsa.uiuc.edu>
  10. Message-Id: <199610311951.NAA10608@ncsa.uiuc.edu>
  11. To: leslie@bunyip.com (Leslie Daigle)
  12. Cc: urn-ietf@bunyip.com
  13. Subject: Re: Names and Locations (was [URN] some comments)
  14. In-Reply-To: <199610310907.EAA11716@beethoven.bunyip.com>
  15. References: <199610310907.EAA11716@beethoven.bunyip.com>
  16. Sender: owner-urn-ietf@services.bunyip.com
  17. Precedence: bulk
  18. Reply-To: Daniel LaLiberte <liberte@ncsa.uiuc.edu>
  19. Errors-To: owner-urn-ietf@bunyip.com
  20.  
  21. Leslie Daigle writes:
  22.  > > In general, each scheme, whether for a URL or URN, should be
  23.  > > associated with some resolution protocol.  
  24.  > 
  25.  > I'm not sure I'm clear on what you're getting at here, and even if
  26.  > we do agree, I think there is some potential for the above to be a
  27.  > bit misleading.
  28.  
  29. I'll try to be more clear below.  If URLs and URNs are to be in the
  30. same name space of URI schemes, then we need to talk about them as the
  31. same kind of thing.  This is not only possible, it is correct.
  32.  
  33. BTW, emphasis in the following is not shouting.  I'm very calm, now.
  34.  
  35.  > The point of the indirection in the URN naming is to abstract the
  36.  > (final) resolution protocol so that no name space is specifically
  37.  > associated with, say, HTTP, or Whois++.  THe idea is that any URN
  38.  > can be resolved using different protocols -- at one time, or at
  39.  > different stages in its lifetime -- and this is a separate process
  40.  > from determining the URN identifier string.
  41.  
  42. This illustrates why I think the term "resolution protocol" is
  43. confusing.  I mean something different than you and others do - and
  44. you qualified it parenthetically by saying "the (final) resolution
  45. protocol".  More below.
  46.  
  47.  > However, there is a general mechanism for handling URNs to the
  48.  > extent of extracting Naming Authority, etc etc etc, which is
  49.  > standard across the URNs we define here.
  50.  
  51. My point is that this mechanism for looking up the naming authority
  52. etc, as defined by the NAPTR spec (or other such specs), is only
  53. *part* of the WHOLE RESOLUTION PROCESS.  (Calling it a "resolution
  54. process" may avoid the "protocol" issue, but it is not that simple, as
  55. I argued in previous mail.)  The first part of the whole resolution
  56. process involves how you talk to DNS servers to lookup the naming
  57. authority etc.  Note: HOW YOU TALK TO DNS IN THIS PARTICULAR WAY *IS*
  58. A PROTOCOL.  If you like, it is a protocol layered on top of the raw
  59. DNS protocol.  Note also that it is this lookup process that makes
  60. URNs into locations; You LOOK UP URNs starting AT A PARTICULAR
  61. LOCATION which is the root of the name space (urn.net or wherever).
  62. (Actually, just as for URLs, you can lookup up the very same URNs
  63. in different ways - see below.)
  64.  
  65. Another part of the process is using the result of the first part,
  66. specifically the list of what is being called "resolution protocols".
  67. The client may then select one of these "resolution protocols" to
  68. continue with the resolution process.  But note that this is not
  69. necessarily the end of the whole process.  A resolution service might
  70. return an indirection to yet another URI, so the resolution process
  71. continues until you have what you want, whether that is the resource
  72. originally identified or some information about it, or you get an
  73. error.
  74.  
  75. There may be other parts of the resolution process that are used 
  76. *before* looking up naming authorities, such as trying to resolve
  77. the whole identifier from a local cache, or from a more global cache.
  78. It may not be necessary to do some of the above steps in the resolution
  79. process depending on what is found elsewhere via other protocols.
  80.  
  81. Many protocols are involved in this whole resolution process, and to
  82. say that only some are the "resolution protocols" obscures the truth
  83. and so is misleading.
  84.  
  85.  > > You made the curious statement that URNs identify resources while URLs
  86.  > > identify locations.  I'm not sure whether that was a slip, but to my
  87.  > > mind, a URL *IS* a location that identifies a resource.  Now you also
  88.  > 
  89.  > URLs identify a particular location for a resource.
  90.  
  91. OK, what is a location?  Is it the bits on the disk that "has" the
  92. resouce?  (The disk might be shared by many servers, so the resource
  93. has a different "location" for each server.) Is it the server running
  94. at a particular IP address and port, that may share many disks with
  95. other servers?  (The server may be a virtual server that runs on many
  96. machines, and the particular IP address is irrelevant.)  Is it the
  97. domain name of the server, together with the path within the server?
  98. That's getting closer to the abstraction that URLs provide.  Is the
  99. location, in fact, the URL itself?
  100.  
  101. Consider caches.  The resolution of a URL via a cache proxy may find
  102. the resource in the cache rather than in some remote server.  What is
  103. "the location" of the resource in that case?
  104.  
  105. Here is an example of how what is thought of as a location really
  106. turns out to *be* a name (as in persistent location).  Take a normal
  107. http URL such as http://www.ncsa.uiuc.edu/.  Instead of using normal
  108. HTTP to resolve the URL, or to look it up in a cache, let's set up a
  109. NAPTR-based "http" naming authority.  Under that branch of the name
  110. space, we could ask the appropriate DNS server to look up
  111. 'www.ncsa.uiuc.edu' to find out where a server is currently located
  112. and what "resolution protocols" are currently supported.
  113.  
  114. We don't need to create a new kind of identifier to make a URL into a
  115. persistent location.  We *do* need new persistent services, such as
  116. the NAPTR records in DNS.
  117.  
  118. How a URL is processed determines where the resource is really found,
  119. and the very same URL could be processed many different ways and the
  120. resource found many different places.
  121.  
  122. And besides all that, a URL can be used to find other things
  123. associated with the resource, by completely different means, such as
  124. annotations or censorship ratings.  The URL identifies all those
  125. things too, depending on how the URL is processed.
  126.  
  127. The tight binding between http URLs and the HTTP protocol is an
  128. illusion created by frequent reinforcement and a transparent
  129. resolution process.  (Similarly, many people feel they "visit" a web
  130. page, rather than bring a copy of the page back to their browser.)
  131.  
  132. To summarize, both URLs and URNs have the following abstract
  133. resolution process in common:
  134.  
  135. 1. Do some client-specific processing of the URI - maybe end there.
  136. 2. Look at the scheme name of the URI.  If it says "URN:" drop it and repeat.
  137. 3. Look up the scheme in local table to find out what process should
  138.    be invoked.  E.g. news URIs may use NNTP, http URIs may use HTTP,
  139.    cid URIs may use NAPTR-protocol.
  140. 4. Invoke the process identified by step 3. 
  141. 5. If error results, exit.
  142. 6. If redirected to another URI, repeat whole process with that URI.
  143.  
  144. An alternative to steps 2 and 3 would use more than just the scheme
  145. name to determine what process to invoke.  There are several other
  146. varients possible in the whole process, and each client or each user
  147. might do things differently.
  148.  
  149. I hope I've made my postion very clear regarding names, locations, and
  150. the resolution process.
  151.  
  152. --
  153. Daniel LaLiberte (liberte@ncsa.uiuc.edu)
  154. National Center for Supercomputing Applications
  155. http://union.ncsa.uiuc.edu/~liberte/
  156.